#pragma once
extern unsigned int SEED;
extern int TEST_INDEX;
extern int DURATION;
extern double USER_ARRIVAL_RATE;
extern int MEAN_ONLINE_DURATION;
extern int SAMPLING_NUMBER;
//extern int CLUSTER_SIZE;
extern int GOSSIP_ROUND;
extern int BUDGET_NUM;
extern int * ROUTER_DISTANCE_TABLE;
extern int BUDGET_SIZE;
extern int PUBLISH_SEARCHDEPTH;
extern int PUBLISH_REDUNDANCE;
extern int PARALLELISM;
extern int JOIN_SEARCHDEPTH;
extern int REPUBLISH_DATA_ROUND;

extern unsigned int NODE_COUNT;

extern int REPORT_ROUND  ;
extern int SNAPSHOT_ROUND;
extern int SEARCH_NODE_ROUND ;

extern int DATA_INSERT_ROUND ;
extern int DATA_INSERT_NUMBER  ;
extern char * DATA_PATH_NAME;


extern int QUERY_SEARCHDEPTH;
extern int SEARCH_STEPS;
//for normal data search 
extern int DATA_SEARCH_START_TIME;
extern int SEARCH_DATA_ROUND ;
extern char * SEED_PATH_NAME;
extern int CLUSTER_RADIUS;
//end

//for multip range data search
extern int MULTIP_RANGE_DATA_SEARCH_TIME;
extern char * RANGE_SEED_PATH_NAME;
extern int MIN_SEARCH_RANGE;
extern int MAX_SEARCH_RANGE;
extern int SEARCH_RANGE_STEP;
//end
#define MAX_KEY_DISTANCE ROUTER_DISTANCE_TABLE[BUDGET_NUM-1]

bool GetParameter(const char *pStr = NULL);

